<!DOCTYPE html>
<html lang="en">
  <head>
    <meta charset="UTF-8" />
    <meta http-equiv="X-UA-Compatible" content="IE=edge" />
    <meta name="viewport" content="width=device-width, initial-scale=1.0" />
    <title>Document</title>
  </head>

  <body>
    <script>
      //请实现以下效果
      function add(a, b, c) {
        return a + b + c
      }
      // console.log(add.length);

      //   const res = add(1, 2, 3) // 6

      const curry = (fn) => {
        let myCurry = (...arg1) => {
          return arg1.length === 0
            ? fn(...arg1)
            : (...arg2) => myCurry(...arg1, ...arg2)
        }
        return myCurry
      }

      //   function curry(fn) {
      //     function myCurry(...arg1) {
      //       if (arg1.length >= fn.length) return fn(...arg1)
      //       return function (...arg2) {
      //         return myCurry(...arg1, ...arg2)
      //       }
      //     }
      //     return myCurry
      //   }

      //   const addCurry = (a) => {
      //     return (b) => {
      //       return (c) => {
      //         return a + b + c
      //       }
      //     }
      //   }
      let addCurry = curry(add)
      // console.log(addCurry);
      const res2 = addCurry(1)(2)(3)() // 6

      console.log(res2)
    </script>
  </body>
</html>
